/*
 * FSWUniCEUB - 2008
 * 
 * Este arquivo é de propriedade da Fábrica de Software do UniCEUB
 * 
 * Para mais informações entre em contato com a coordenação do
 * curso de Ciência da Computação da instituição.
 */

package br.uniceub.fsw.indicadores.vo;

import br.uniceub.fsw.indicadores.dao.ObjetivoDAO;
import br.uniceub.fsw.indicadores.dao.IndicadorDAO;

/**
 * Value Object da associação das entidades Indicador e Objetivo 
 * do módulo de Indicadores.
 * 
 * Tabela: TA_IndicadorObjetivo
 *
 * @author Marcos Mello Nobrega Soares ra20136178
 */
public class ObjetivoIndicadorVO {    
    
    /**
     * Tabela referenciada: TB_Indicador
     * Coluna FK: CD_Indicador
     */
    private Integer cdIndicador;
    
    /**
     * Indicador relacionado pela coluna cdIndicador.
     */
    private IndicadorVO planoMedicao;
    
    /**
     * Tabela referenciada: TB_Objetivo
     * Coluna FK: CD_Objetivo
     */
    private Integer cdObjetivo;
    
    /**
     * Indicador relacionado pela coluna cdIndicador.
     */
    private ObjetivoVO objetivo;

    /*
     * Getters e Setters.
     */    

    public Integer getCdIndicador() {
        return cdIndicador;
    }

    public void setCdIndicador(Integer cdIndicador) {
        this.cdIndicador = cdIndicador;
    }
    
    public IndicadorVO getIndicador() {
        
        if(this.planoMedicao == null) {
            this.planoMedicao = new IndicadorDAO().consultarPorId(this.cdIndicador);
        }
        
        return planoMedicao;
    }    
    
     public Integer getCdObjetivo() {
        return cdObjetivo;
    }

    public void setCdObjetivo(Integer cdObjetivo) {
        this.cdObjetivo = cdObjetivo;
    }
    
    public ObjetivoVO getObjetivo() {
        
        if(this.objetivo == null) {
            this.objetivo = new ObjetivoDAO().consultarPorId(this.cdObjetivo);
        }
        
        return objetivo;
    }
}
